function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//browsercheck
function checkBrowser(){
	this.ver=navigator.appVersion
	this.dom=document.getElementById?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie4=(document.all && !this.dom)?1:0;
	this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
	return this
}
bw=new checkBrowser()
/*****************

You set the width and height of the divs inside the style tag, you only have to
change the divCont, Remeber to set the clip the same as the width and height.
You can remove the divUp and divDown layers if you want. 
This script should also work if you make the divCont position:relative.
Then you should be able to place this inside a table or something. Just remember
that Netscape crash very easily with relative positioned divs and tables.

Updated with a fix for error if moving over layer before pageload.

****************/
//If you want it to move faster you can set this lower:
var speed=100

//Sets variables to keep track of what's happening
var dloop, uloop, timer;
var gimgName, gdivName;
//Object constructor
function makeObj(obj,nest)
{
    nest=(!nest) ? '':'document.' + nest+'.'
	this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
  	this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
  	this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight 
  	this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight
	this.up=goUp;this.down=goDown;
	this.moveIt=moveIt; this.x; this.y;
    this.obj = obj + "Object"
    eval(this.obj + "=this")
	return this
   
}

function moveIt(x,y){
	this.x=x;this.y=y
	this.css.left=this.x
	this.css.top=this.y
}

//Makes the object go up
function goDown(move){
	if(this.y>-this.scrollHeight+oCont.clipHeight){
		this.moveIt(0,this.y-move)
			if(dloop) setTimeout(this.obj+".down("+move+")",speed)
	}
}
//Makes the object go down
function goUp(move){
	if(this.y<0){
		this.moveIt(0,this.y-move)
		if(uloop) setTimeout(this.obj+".up("+move+")",speed)
	}
}
//Calls the scrolling functions. Also checks whether the page is loaded or not.
function scroll(speed){
	if(loaded){
		if(speed>0) {uloop=false;dloop=true;oScroll.down(speed);}
		else {dloop=false;uloop=true;oScroll.up(speed);}
	}
}

//Stops the scrolling (called on mouseout)
function noScroll(){
	if (dloop) dloop=false;
    if (uloop) uloop=false;
	if(timer) clearTimeout(timer);
}
//Makes the object
var loaded;

//do browser detect stuff
var isNS = (navigator.appName == "Netscape");
var isMacIE = ( (navigator.userAgent.indexOf("IE 4")  > -1) && (navigator.userAgent.indexOf("Mac")  > -1) );
var layerRef = (isNS) ? "document" : "document.all";
var styleRef = (isNS) ? "" : ".style";
var isDynamic = ( (document.layers || document.all) && !isMacIE );

var activeMenu = 0;
var finalClip;



function activateMenu(menuLayerRef, offset) {
	
	if (isDynamic && activeMenu != menuLayerRef) {

		if (activeMenu) hideMenu("menu" + activeMenu);
			
		menuID = "menu" + menuLayerRef;
		activeMenu = menuLayerRef;
	
		if (isNS) {
			document[menuID].top = 80;
			document[menuID].left = offset;
		} else {
			document.all[menuID].style.pixelTop = offset;
			document.all[menuID].style.pixelLeft = 135;
		}

		showMenu(menuID)
		
	}
	if (isDynamic && !isNS) window.event.cancelBubble = true;
}
function activateMenutop(menuLayerRef, offset) {
	
	if (isDynamic && activeMenu != menuLayerRef) {

		if (activeMenu) hideMenu("menu" + activeMenu);
			
		menuID = "menu" + menuLayerRef;
		activeMenu = menuLayerRef;
	
		if (isNS) {
			document[menuID].top = 80;
			document[menuID].left = offset;
		} else {
			document.all[menuID].style.pixelTop =13;
			document.all[menuID].style.pixelLeft = offset;
		}

		showMenu(menuID)
		
	}
	if (isDynamic && !isNS) window.event.cancelBubble = true;
}
function showMenu(layerID) {
	eval(layerRef + '["' + layerID + '"]' + styleRef + '.visibility = "visible"');
}

function hideMenu(layerID) {
	eval(layerRef + '["' + layerID + '"]' + styleRef + '.visibility = "hidden"');
}

function killMenu(e) {
	//check if theres a menu active
	if (activeMenu) {
		menuID = "menu" + activeMenu;
		if (isNS) {
			menuX1 = document[menuID].left;
			menuX2 = menuX1 + document[menuID].clip.right;
			menuY1 = document[menuID].top;
			menuY2 = menuY1 + document[menuID].clip.bottom;
			
			if (e.pageX < menuX1 || e.pageX > menuX2 || e.pageY > menuY2) {
				hideMenu(menuID);
				activeMenu = 0;
			}
		} else {
				hideMenu(menuID);
				activeMenu = 0;

		}
	}  

}

var doc
var sty
var htm

if(isNS) {
		   doc = "document";
		   sty = "";
		   htm = ".document"
} else {
  	   	   doc = "document.all";
		   sty = ".style";
		   htm = ""
}

function popUp(mURL,imgPath,divName) {	
      //window.open(moviePath, winName, "width=" + xSize + ",height=" + Ysize + ",directories=no,status=no,scrollbars=no,resize=no,menubar=no,toolbar=no,alwaysRaised=yes" );
      window.location.href= mURL;
      gimgPath = imgPath;
      gdivName = divName;
}

function scrollInit(){
        
	
		if (isNS) { 
			document.captureEvents(Event.MOUSEMOVE); 
			document.onmousemove = killMenu;
		} else {
			document.onmouseover = killMenu;
		}
		
	
}

function changeImage(imgName,VisibleDivName)
{
        
	document.images["imgChange"].src = imgName
	MakeVisibleDiv(VisibleDivName,isNS)
	if (isNS)
		oScroll.scrollHeight = parseInt(document.divCont.document.divText.document[VisibleDivName].document.height) + 10 ;
	else	
		oScroll.scrollHeight = parseInt(document.all[VisibleDivName].style.height);
		
	oScroll.moveIt(0,0)
		
}

function ChangePage()
{
      changeImage(gimgPath,gdivName)
}

function Moveup()
{
	oScroll.moveIt(0,0)

}

//Call the init on page load
//onload=scrollInit;
